var express = require('express');
var router = express.Router();
//载入lodash包
const _=require('lodash')
//载入md5包
const md5=require('md5')

//导入模型
const AdminModel=require('../models')['Admin']

//登录表单
router.get('/login',(req, res)=>{
    //加载视图
    res.render('login/login.html')
});

//登录验证
router.post('/login',async (req,res)=>{
   const body=req.body;
   if(!_.has(body,'admin_name')){
     return res.cc(400, '必须提供admin_name选项')
   }
   if (!_.has(body, 'admin_password')) {
     return res.cc(400, '必须提供admin_password选项')
   }
   //接收表单数据
   let admin_name=body.admin_name.trim()
   let admin_password=body.admin_password.trim()
   if(admin_name==''){
     return res.cc(400,'admin_name不能为空')
   }
   if(admin_password==''){
     return res.cc(400, 'admin_password不能为空')
   }

   //先对密码进行加密
   admin_password=md5(admin_password)
   const adminInfo=await AdminModel.findAll({
        where:{
            admin_name,
            admin_password
        }
   })
    
   if(adminInfo.length==0){
        return res.cc(400, '用户名或密码输入错误')
   }
   //用户登录信息的处理: 
    //如果勾选了一周免登陆的复选框，那么把用户的登录状态保存在cookie
    if(body.login7){
        //保存到cookie中
         res.cookie('isLogin', true, {
           maxAge: 7 * 24 * 3600,
           signed: true
         })
        res.cookie('admin_name', adminInfo[0].admin_name, {
          maxAge: 7 * 24 * 3600,
          signed: true
        })
    }
    //不管有没有勾选一周免登录，同时往session中再存储一份
    req.session.isLogin=true
    req.session.admin_name=adminInfo[0].admin_name
    //返回信息
    res.cc(200,'登录成功')

})

//退出登录
router.get('/logout',(req,res)=>{
    
     //清除session
      req.session.destroy();
     //清除cookie
      res.cookie('isLogin', '', {
        maxAge: new Date(0),
        signed: true
      });
      res.json({
        status:200,
        msg:'退出成功'
      })
})



module.exports = router;
